//
//  LLMainTabBar.swift
//  IOSWeibo
//
//  Created by 廖灵全 on 16/5/11.
//  Copyright © 2016年 liao. All rights reserved.
//

import UIKit

class LLMainTabBar: UITabBar {
    
    //拿到闭包设置属性
    var modalController : (() -> ())?
    //只要布局控件  系统都会自动调用这个方法   现在是覆盖这个方法
    override func layoutSubviews() {
        //如果不调用父类   子控件会全部都看不到
        super.layoutSubviews()
//            composeButton.frame = CGRect(x: 0,y: 0,width: 100,height: 49)
        //计算frame
        let width = self.frame.width/5
    
        //记录按钮的位置 0~4
        var index = 0
        
//      要添加中间那个按钮   首先先看看当前其他四个按钮的位置
        for view in self.subviews
        {
            // 找到UITabBarButton,才是按钮,需要修改frame值
            //这里强制拆包是UITabBarButton一定能生成一个class
            if view.isKindOfClass(NSClassFromString("UITabBarButton")!)
            {
                // 能到这里面来说明view 是 UITabBarButton类型
                // 重新设置frame   width是CGFloat类型  所以要转换
                view.frame = CGRect(x:(CGFloat(index)*width),y: 0,width:width,height: self.frame.height )
                
                index += 1
                //位置不对   要多加2
                if index == 2
                {
                    index += 1
                }
            }

        }
        
        composeButton.frame = CGRect(x: 2*width, y: 0, width: width, height: self.frame.height)
    }
    //modal按钮点击事件
    func modalButtonClick() {
        print("调用闭包")
        modalController!()
    }
    // 懒加载
//    lazy var composeButton : UIButton = UIButton ()  //不能满足要求
    lazy var composeButton : UIButton = {
        //创建按钮
        let btn = UIButton( type :UIButtonType.Custom)
        
        //设置按钮
        //按钮的背景图片
        btn.setBackgroundImage(UIImage(named:"tabbar_compose_button"), forState: UIControlState.Normal)
        btn.setBackgroundImage(UIImage(named:"tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        //按钮的图片
        btn.setImage(UIImage(named:"tabbar_compose_icon_add"), forState: UIControlState.Normal)
        btn.setImage(UIImage(named:"tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        //这个创建本来就在tabBar里面所以添加可以直接self.    这里 addSubview没有提示的需要手动敲
        //   addSubview(btn)      整个composeButton实际上是一个闭包  所以要加self.调用
        self.addSubview(btn)
        //添加点击事件

        btn.addTarget(self, action: #selector(LLMainTabBar.modalButtonClick), forControlEvents: UIControlEvents.TouchUpInside)
        return btn
    }()
    
    
}

